import {defineStore} from 'pinia'
import {ref, computed} from 'vue'

export const useCounterStore = defineStore('counter', () => {
  // 创建state
  const count = ref(0)
  // 创建actions 普通方法就是actions
  const increment = () => {
    count.value++
  }
  const decrement = () => {
    count.value--
  }

  // 创建getters 实质就是computed函数
  const double = computed(() => {
    return count.value * 2
  })

  // 创建其他states对象
  const msg = ref('hello，pinia')
  return {count, increment, decrement, double, msg}
},{
  persist:{
    // pinia持久化插件是基于localStorage的， 默认的key就是defineStore中的id，可以使用key参数进行修改
    key:'counter-new-name',
    // pinia持久化默认持久化整个状态中的属性，可以对部分数据进行持久化，在pick中配置
    // 只持久化count， 不持久化msg
    pick:['count']
  }
})
